[section .data]
    vstr db "Hello world", 0xA
    vlen equ 12

[section .text]
    global _start
    global asm_print

    extern c_print

_start:
    push vlen		; 参数入栈（从右向左）
    push vstr		; 参数入栈（从右向左）
    call c_print
    add esp, 8		; 回收栈空间
    

    
asm_print:
    push ebp
    mov ebp, esp

    mov ebx, 1          ; fd=1:stdout
    mov ecx, [ebp+8]    ; char * buf
    mov edx, [ebp+12]   ; count
    mov eax, 4          ; sys_write
    int 0x80

    mov ebx, 0          ; 0:表示无错误
    mov eax, 1          ; sys_exit
    int 0x80

    pop ebp
    ret

    